Functor-Applicative-Monad proposal (AMP)